package com.da.javatest.thread.juc.ratelimit;

import com.google.common.util.concurrent.RateLimiter;

/**
 * @author chenlida
 * @date 2020/7/18 15:29
 * 第一段每次输出相隔200毫秒，第二段每次输出相隔100毫秒，可以非常精准的控制系统的QPS。
 */
public class RateLimit3 {
    public static void main(String[] args) {
        //设置QPS为5
        RateLimiter rateLimiter = RateLimiter.create(5);
        for (int i = 0; i < 10; i++) {
            rateLimiter.acquire();
            System.out.println(System.currentTimeMillis());
        }
        System.out.println("----------");
        //可以随时调整速率，我们将qps调整为10
        rateLimiter.setRate(10);
        for (int i = 0; i < 10; i++) {
            rateLimiter.acquire();
            System.out.println(System.currentTimeMillis());
        }
    }
}
